package com.dycong.common.leetcode.yi;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: yilin
 * Date: 2019-08-19
 * Time: 17:53
 */
public class Palindrome {


    public static boolean isPalindrome(int x) {
        //符号为在右边，肯定不算回文数
        if (x < 0) return false;
        if (x == 0) return true;

        int tem = 0;
        int res = x;
        while (x != 0) {
            tem = tem * 10 + x % 10;
            x /= 10;
        }
        if (tem == res) return true;
        return false;

        /**
         * 方法一
         *
         *     //除10的余数为0，翻转后最高为0,肯定和原数据不等
         if(x<0|| x%10==0 && x!=0) return false;

         /*
         直观上来看待回文数的话，就感觉像是将数字进行对折后看能否一一对应。
         所以这个解法的操作就是 取出后半段数字进行翻转。
         这里需要注意的一个点就是由于回文数的位数可奇可偶，所以当它的长度是偶数时，它对折过来应该是相等的；当它的长度是奇数时，那么它对折过来后，有一个的长度需要  去掉一位数
         ：https://leetcode-cn.com/problems/two-sum/solution/dong-hua-hui-wen-shu-de-san-chong-jie-fa-fa-jie-ch/


         int revertNumber=0;
         while (x>revertNumber){
         revertNumber=revertNumber*10+x%10;
         x/=10;
         }


         return revertNumber==x|| revertNumber/10==x;
         */


    }

    public static void main(String[] args) {
//        System.out.println(isPalindrome(1221));
    }
}
